﻿// SDOI 2016, 硬币游戏.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

/*
http://oj.daimayuan.top/course/30/problem/1241


Alice 和 Bob 现在在玩的游戏，主角是依次编号为 1
 到 n
 的 n
 枚硬币。每一枚硬币都有两面，我们分别称之为正面和反面。一开始的时候，有些硬币是正面向上的，有些是反面朝上的。Alice 和 Bob 将轮流对这些硬币进行翻转操作，且 Alice 总是先手。

具体来说每次玩家可以选择一枚编号为 x
，要求这枚硬币此刻是反面朝上的。对于编号 x
 来说，我们总可以将 x
 写成 c⋅2a⋅3b
 ，其中 a
 和 b
 是非负整数，c
 是与 2,3
 都互质的非负整数，然后有两种选择：

选择整数 p,q
 满足 a≥pq,p≥1
 且 1≤q≤MAXQ
，然后同时翻转所有编号为 c⋅2a−pj⋅3b
 的硬币，其中 j=0,1,2,…q
。

选择整数 p,q
 满足 b≥pq,p≥1
 且 1≤q≤MAXQ
，然后同时翻转所有编号为 c⋅2a⋅3b−pj
 的硬币，其中 j=0,1,2,…q
。

可以发现这个游戏不能无限进行下去，当某位玩家无法继续操作上述操作时，便输掉了游戏。作为先手的 Alice，总是希望可以在比赛开始之前就知道自己能否获胜。她知道自己和 Bob 都是充分聪明的，所以在游戏过程中，两人都会最优化自己的策略并尽量保证自己处于不败的情形中。

输入格式
本题有多组测试数据，第一行输入一个整数 T(T≤100)
，表示总的数据组数。

之后给出 T
 组数据，每组数据第一行输入两个整数 n(n≤30000),MAXQ,(MAXQ≤20)
。

第二行输入 n
 个整数，第 i
 个数表示第 i
 个硬币的初始状态，0
 表示反面朝上，1
表示正面朝上。

输出格式
输出共有 T
 行。对于每一组数据来说，如果Alice先手必胜，则输出win，否则输出lose。

样例输入1
6
16 14
1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1
16 14
0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1
16 11
0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 1
16 12
1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0
16 4
1 0 0 1 0 0 1 0 0 0 0 1 0 1 1 0
16 20
0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0
样例输出1
win
lose
win
lose
win
win

*/

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <set>

using namespace std;

typedef long long ll;
int n, maxq, sg[20][20];
void solve() {
    scanf("%d %d",&n,&maxq);
    for (int a = 0; a <= 15; a++)
        for (int b = 0; b <= 10; b++){
            set<int> s;
            sg[a][b] = 0;
            for (int p = 1; p <= a; p++) {
                int val = 0;
                for (int q = 1; p * q <= a && q <= maxq; q++) {
                    val ^= sg[a - p * q][b];
                    s.insert(val);
                }
            }
            for (int p = 1; p <= b; p++) {
                int val = 0;
                for (int q = 1; p * q <= b && q <= maxq; q++) {
                    val ^= sg[a][b - p * q];
                    s.insert(val);
                }
            }
            while (s.count(sg[a][b])) sg[a][b]++; 
        }

    int ans = 0;
    for (int i = 1; i <= n; i++) {
        int v;
        scanf("%d",&v);
        if (v == 0) {
            int a = 0, b = 0, c = i;
            while (c % 2 == 0) c /= 2, a++;
            while (c % 3 == 0) c /= 3, b++;
            ans ^= sg[a][b];
        }
    }
    puts(ans ? "win" : "lose");
}


int main()
{
    int tc;
    scanf("%d",&tc);
    for (int T = 0; T < tc; T++) {
        solve();
    }


}

 